It is a problem in Internet Protocol (IP) Networks that some of the data packets transmitted by one communication device may fail to arrive at their intended destination. Transmission/transportation level protocols such as the Transmission Control Protocol (TCP) can be used to transmit data across the IP network. The TCP is a virtual circuit protocol that is one of the core protocols of the IP suite and is often referred to as TCP/IP. Endpoints connected to an IP network can employ TCP to create connections to one another, then use those connections to exchange streams of data in audio, text, video, or other media. The TCP protocol guarantees reliable and in-order delivery of data from the sender to the receiver. TCP currently supports many of the Internet's most popular application protocols and resulting applications, including the World Wide Web, e-mail, and Secure Shell.
Lossless transportation protocols such as TCP permit receiving devices to request that missing packets be retransmitted. Unfortunately, this retransmission process often results in long pauses in the data stream, as well as data transmission latencies of more than several hundred milliseconds. For these reasons, TCP/IP is not commonly used in communication applications where real-time communications are desired, such as telephony applications.
For these reasons, Voice over Internet Protocol (VoIP) systems commonly use a transmission/transportation scheme called the User Datagram Protocol (UDP). UDP and TCP are the two main transport-level Internet protocols. The UDP protocol does not suffer from the pauses or transmission latencies that would be seen if TCP/IP were used for VoIP, mainly because retransmission of missing packets is not carried out by UDP. Instead, UDP does not provide the reliability and ordering guarantees that TCP does, because UDP attempts to transport data quickly from endpoint to endpoint for real-time applications. Instead, IP networks try to reduce VoIP packet loss by assigning a higher priority to UDP packets. Additionally, many VoIP telephones include packet loss concealment algorithms that try to trick the human ear by inserting extrapolated data as a placeholder for the lost packets. Unless the level of packet loss becomes extreme, the use of high quality packet loss concealment algorithms allows UDP to be an acceptable transportation protocol for two-way voice conversations. However, when an IP network becomes congested due to high volumes of traffic, network bandwidth availability tends to decrease. The number of lost packets begins to increase as the network bandwidth availability begins to decrease. If too many packets are lost or received in the wrong order, a VoIP conversation can become unintelligible and frustrating for both parties.
Transportation protocols, such as UDP-type protocols, that are designed to eliminate latency between transmission and reception of a signal are typically designed to forego some amount of transmission quality. On the other hand, protocols such as TCP-type protocols are designed to increase transmission quality at the expense of latency.
IP telephony is often conducted over network connections that vary in quality, in aspects such as delay, packet loss, bandwidth, and so on. There are a number of ways to cope with these problems, but the solutions are generally predicated on the assumption that the network problems are minor and/or temporary. When the network encounters a larger and/or longer-term problem, conversations using UDP-type transportation protocols can become fragmented and unintelligible. As a result, users will begin to talk over the top of each other and the ability to transfer information via the conversation becomes almost impossible.
Such problems may be considered trivial for casual conversations; however, for military applications or other applications where the accurate dissemination of information is of the utmost importance, such problems may carry serious consequences. Particularly in military applications, where network bandwidth may be substantially degraded and subject to large fluctuations (due to field conditions, mobility, enemy actions, etc.), callers have a strong need to communicate clear instructions or information even at the cost of some delay.
There have been some attempts to address such problems in the prior art. For example, U.S. Patent Application No. 20050180323 to Beightol et al., the entire contents of which are incorporated herein by reference, describes using a TCP-like connection protocol to allow missing packets in a VoIP connection to be restored. The application describes adding extra information to standard UDP packets to allow TCP-like retransmission. Extra information is added to the standard UDP packet headers since it is observed that changing a connection between TCP and UDP is not permitted. One problem with this particular solution is that it applies only to unidirectional conversations, where Interactive Voice Response (IVR) units are involved. The unidirectional conversation allows for larger than normal delays as a sacrifice for clarity. However, this particular solution does not address the issue of talk-over since it is designed for unidirectional communications instead of bidirectional communications. Additionally, the TCP-like transportation is not designed to cope with a network connection whose bandwidth is substantially below that required for normal speech.